import entity.User;

import java.lang.reflect.Field;
import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

//TIP 要<b>运行</b>代码，请按 <shortcut actionId="Run"/> 或
// 点击装订区域中的 <icon src="AllIcons.Actions.Execute"/> 图标。
public class Main {
    public static void main(String[] args) throws ParseException, IllegalAccessException {

//        Map<String, String> map = new HashMap<>();
//        map.put("id", "1");
//        map.put("name", "Jone");
//        map.put("kahao", "32215464645");
//        map.put("iphone", "15150551515");
//        map.put("money", "520");
//
//        User user = new User();
//        mapToObject(map, user);
//        System.out.println(user);
//
//    }
//
//    private static void mapToObject(Map<String, String> map, Object object) throws IllegalAccessException, ParseException {
//        Class<?> clazz = object.getClass();
//        Field[] fields = clazz.getDeclaredFields();
//
//        for (Field field : fields) {
//            //属性名
//            System.out.println(field.getName());
//            //类型
//            System.out.println(field.getType().getName());
//            //值
//            System.out.println(map.get(field.getName()));
//
//            //暴力反射
//            field.setAccessible(true);
//            String typeName = field.getType().getName();
//
//            if (null != map.get(field.getName())) {
//                if ("long".equals(typeName)||"java.lang.Long".equals(typeName)) {
//                    Long logValue = Long.valueOf(map.get(field.getName()));
//                    field.set(object, logValue);
//                } else if ("java.math.BigDecima".equals(typeName)) {
//                    BigDecimal bigDecimal = new BigDecimal(map.get(field.getName()));
//                    field.set(object, bigDecimal);
//                } else if ("java.util.Date".equals(typeName)) {
//                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//                    Date date = sdf.parse(map.get(field.getName()));
//                    field.set(object, date);
//                }else {
//                    field.set(object, map.get(field.getName()));
//                }
//            }
//        }
    }
}



